package com.cjm.algorithm.leetcode.listnode.first;

import com.cjm.algorithm.ListNode;

public class Ti206Easy {
    /**
     * 2023-09-13 22:50:17
     * @param head
     * @return
     */
    public static ListNode reverseList(ListNode head) {
        // 前一个节点
        ListNode pre = null;
        // 当前节点
        ListNode cur = head;
        // 如果当前的节点不为null的话
        while (cur != null) {
            // 将下一个节点给保存起来, 怕丢了
            ListNode tmp = cur.next;
            // 开始改变了, 就是当前的节点的下一个节点, 变成了上一个节点了
            cur.next = pre;

            // 为下一次的循环做准备
            pre = cur;
            // 将保存起来的值, 进行存储
            cur = tmp;
        }

        return pre;
    }

    public static ListNode reverseList1(ListNode head) {
        ListNode pre = null;
        ListNode cur = head;

        while (cur != null) {
            ListNode temp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = temp;
        }
        return pre;
    }
}
